Quick Start Document
Here is a simple guide to get up and running with Horizon SDK in under 5 minutes! If you are looking how you can integrate Horizon SDK to your new or existing project, head over the the Installation Guide.
Initialization
Once the SDK is installed, ensure you initialize the SDK upon application launch. For most applications, this can be done in application:didFinishLaunchingWithOptions: of your UIApplicationDelegate class.
The example below contains a placeholder API key, so after placing the code be sure to replace it with your own.
@import HorizonSDK;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[HVTSDK sharedInstance] activateWithAPIKey:@"<PLACEHOLDER API KEY>"];
return YES;
}
After initializing Horizon SDK, you can choose between two different approaches: Using the HVTCameraController or handling the whole process programmatically with HVTCamera.
The first approach provides a fast and easy way of displaying a camera interface with all the controls your users will need to capture videos or shoot photos. The second one provides you with more flexibiliy and control over the camera, the previews and the UI.
1. Using HVTCameraController
The HVTCameraController has similar behavior with the build-in UIImagePickerController
of the UIKit framework.
To get started with the HVTCameraController, first instantiate one.
HVTCameraController *myController = [HVTCameraController new];
Provide any additional properties, such as the supported mediaTypes
and cameraCaptureMode
.
myController.mediaTypes = @[(NSString*)kUTTypeMovie, (NSString*)kUTTypeImage];
myController.cameraCaptureMode = HVTCameraControllerCameraCaptureModeVideo;
Provide a delegate object that the controller will send its notifications.
myController.cameraDelegate = myCameraControllerDelegate;
Present the controller.
[self presentViewController:myController animated:YES completion:nil];
It is expected that you implement the two methods of HVTCameraControllerDelegate
protocol, in order to deal with the recorded videos/photos or the event of the user cancelling the controller.
2. Using HVTCamera
Create an HVTCamera instance in your view controller.
HVTCamera *camera = [HVTCamera new];
If you are using the Interface Builder to create your view controllers, then you must instantiate HVTCamera in the
viewDidLoad
method instead of theinitWithCoder:
.If you are creating the view controllers programmatically then you can use the
init
orinitWithFrame:
methods to instantiate the HVTCamera.
Optionally, you can set the interfaceOrientation
property to the UI orientation of your UIViewController.
camera.interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];
If your app supports multiple orientations, follow the instructions provided in [HVTCamera interfaceOrientation]
.
You can also set the camera’s delegate defined in the HVTCameraDelegate
protocol and implement the protocol’s methods in order to handle events like movie recording and photo capturing.
camera.delegate = myCameraDelegate;
Displaying Video preview
In order to display a video preview, you can create an HVTView programmatically or via the Interface Builder.
To create a HVTView programmatically, you can do the following.
HVTView *videoPreview = [[HVTView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
videoPreview.center = self.view.center;
[self.view addSubview:videoPreview];
Attach this view to your camera by calling HVTCamera’s addView
method.
[camera addView:videoPreview];
Running
Open the camera by running the camera instance.
[camera startRunning];
Make sure you have handled all the camera & microphone permissions as startRunning will throw an exception if it can’t access camera or microphone devices.
You can request camera/microphone access by calling AVCaptureDevice’s requestAccessForMediaType:completionHandler:
method for AVMediaTypeVideo
and AVMediaTypeAudio
types.
Recording
To start video recording call HVTCamera’s startRecordingWithMovieURL:
.
Provide a NSURL
with the file path the movie will be saved to.
Here’s an example:
NSURL *recordingURL = [[NSURL alloc] initFileURLWithPath:[NSString pathWithComponents:@[NSTemporaryDirectory(), @"movie.mov"]]];
[camera startRecordingWithMovieURL:_recordingURL];
To stop recording call the stopRecording
method.
There you have it! Your fist video recording app!
Well done! You now have a video recording application, able to record horizontal videos no matter what! You can learn more about every single class and method by taking a look at the API reference.
Swift Support
Horizon SDK is built on Objective-C, but it supports projects built on the Swift language.
You can get Horizon SDK to work with your Swift project, just by following the same instructions found in the Installation Guide.
You can also take a look at the HorizonSDK sample project written in Swift, provided with the library.